package controlador;
import java.awt.event.*;
import java.sql.SQLException;

import javax.swing.JFrame;
import javax.swing.JOptionPane;

import vista.VCliente;
import modelo.Cliente;
import modelo.Conexion;;

public class CCliente implements ActionListener{

public VCliente vCliente;
public Cliente cliente;
public Conexion BD;

public CCliente(VCliente vc){
	vCliente=vc;
	try {
		BD = new Conexion();
	} catch (SQLException e) {
		e.printStackTrace();
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
}

	
	public void actionPerformed(ActionEvent ae) {
		if(ae.getSource()== vCliente.getBtnRegistrar()){
			if(validarCampos())
			{
			cliente = new Cliente(vCliente.getTxtApellido().getText(),vCliente.getTxtCedula().getText(),vCliente.getTxtDireccion().getText(),vCliente.getTxtEmail().getText(),vCliente.getTxtNombre().getText(), vCliente.getTxtTelefono().getText());
			BD.insertarCliente(cliente);
			
			
			JOptionPane.showMessageDialog(new JFrame(), 
					"El cliente ha sido registrado exitosamente","Cliente", 
					JOptionPane.INFORMATION_MESSAGE);
			limpiarCampos();
			}
			else
				JOptionPane.showMessageDialog(new JFrame(), 
						"Debe introducir todos los campos del cliente","Cliente", 
						JOptionPane.INFORMATION_MESSAGE);
		
	}
		if(ae.getSource()== vCliente.getBtnBuscar()){
			String cedula=vCliente.getTxtCedula().getText();
			if(cedula.equals("")){
				JOptionPane.showMessageDialog(new JFrame(), 
						"Por favor introduzca la cedula del cliente","Cliente", 
						JOptionPane.INFORMATION_MESSAGE);
			vCliente.getTxtCedula().requestFocus(true);
			}
			else
			{
			cliente=BD.consultarCliente(cedula);
			if(cliente==null){
				JOptionPane.showMessageDialog(new JFrame(), 
						"El cliente no se encuntra registrado","Cliente", 
						JOptionPane.INFORMATION_MESSAGE);
			noEncontrado();}
			else{
				vCliente.getTxtApellido().setText(cliente.getApellido());
				vCliente.getTxtDireccion().setText(cliente.getDireccion());
				vCliente.getTxtEmail().setText(cliente.getEMail());
				vCliente.getTxtNombre().setText(cliente.getNombre());
				vCliente.getTxtTelefono().setText(cliente.getTelefono());
				encontrado();
			}
			}		
		
	}
		if(ae.getSource()== vCliente.getBtnModificar()){
			if(validarCampos()){
			cliente = new Cliente(vCliente.getTxtApellido().getText(),vCliente.getTxtCedula().getText(),vCliente.getTxtDireccion().getText(),vCliente.getTxtEmail().getText(),vCliente.getTxtNombre().getText(), vCliente.getTxtTelefono().getText());
			BD.modificarCliente(vCliente.getTxtCedula().getText(),cliente);
			JOptionPane.showMessageDialog(new JFrame(), 
					"Los datos del cliente han sido modificado","Cliente", 
					JOptionPane.INFORMATION_MESSAGE);
			limpiarCampos();
			}
			else
				JOptionPane.showMessageDialog(new JFrame(), 
						"Por favor introduzca todos los datos del cliente","Cliente", 
						JOptionPane.INFORMATION_MESSAGE);
	}
		if(ae.getSource()== vCliente.getBtnLimpiar()){
			limpiarCampos();
		}
		
	}
	public boolean validarCampos(){
		boolean validar=true;
		if(vCliente.getTxtApellido().getText().equals("") || vCliente.getTxtDireccion().getText().equals("") || vCliente.getTxtEmail().getText().equals("") || vCliente.getTxtNombre().equals("") || vCliente.getTxtTelefono().getText().equals(""))
			validar=false;
		return validar;
	}
	public void limpiarCampos(){
		vCliente.getTxtApellido().setText("");
		vCliente.getTxtDireccion().setText("");
		vCliente.getTxtDireccion().setText("");
		vCliente.getTxtEmail().setText("");
		vCliente.getTxtNombre().setText("");
		vCliente.getTxtTelefono().setText("");
		vCliente.getTxtCedula().setText("");
		vCliente.getTxtCedula().requestFocus(true);
		desActivar();
			}
	public void encontrado(){
		vCliente.getTxtApellido().setEditable(true);
		vCliente.getTxtDireccion().setEditable(true);
		vCliente.getTxtEmail().setEditable(true);
		vCliente.getTxtTelefono().setEditable(true);
		vCliente.getTxtNombre().setEditable(true);
		vCliente.getBtnModificar().setEnabled(true);	
		vCliente.getBtnLimpiar().setEnabled(true);
	}
	public void noEncontrado(){
		vCliente.getBtnRegistrar().setEnabled(true);
		vCliente.getTxtDireccion().setEditable(true);
		vCliente.getTxtEmail().setEditable(true);
		vCliente.getTxtTelefono().setEditable(true);
		vCliente.getTxtNombre().setEditable(true);
		vCliente.getTxtApellido().setEditable(true);
		vCliente.getBtnLimpiar().setEnabled(true);
		vCliente.getTxtCedula().setEditable(false);
	}
	public void desActivar(){
		vCliente.getBtnRegistrar().setEnabled(false);
		vCliente.getTxtDireccion().setEditable(false);
		vCliente.getTxtEmail().setEditable(false);
		vCliente.getTxtTelefono().setEditable(false);
		vCliente.getTxtNombre().setEditable(false);
		vCliente.getTxtApellido().setEditable(false);
		vCliente.getBtnLimpiar().setEnabled(false);
		vCliente.getTxtCedula().setEditable(true);	
		
	}
	public void inicio(){
		vCliente.getBtnModificar().setEnabled(false);
		vCliente.getBtnRegistrar().setEnabled(false);
		vCliente.getBtnLimpiar().setEnabled(false);
	    limpiarCampos();
		
	}
	

}